package com.example.HelloWorld;

import java.io.*;
import javax.servlet.ServletException;
import javax.servlet.http.*;
import javax.servlet.annotation.*;


/**
 * @开头的成为注解  Annotation
 * @WebServlet 注解用于声明Servlet组件，可以替代web.xml文件的配置
 * @WebServlet(name = "helloServlet", value = "/hello-servlet")
 *
 */
public class HelloServlet extends HttpServlet {
    private String message;

    //servlet对象初始化完成后会自动执行的方法 ----只执行一次
    public void init() {
        System.out.println("----------初始化方法");
        message = "Hello World!";
    }

    /**
     * 对用户请求进行分析处理的方式实现
     * @param request
     * @param response
     * @throws IOException
     */
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
        System.out.println("---------Get方法执行了----------");
        response.setContentType("text/html;charset=UTF-8");//设置响应对象的相应内容类型

        // Hello  PrintWriter打印输出流
        PrintWriter out = response.getWriter();
        out.println("<html><body>");
        out.println("<h1>" + message + "</h1>");
        out.println("</body></html>");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //为了保证get和post提交方式的处理一致，在doPost里手动调用doGet方法
        System.out.println("---------Post方法执行了----------");
        doGet(req,resp);

    }

    //Servlet对象销毁时自动执行的方法------------- 通常资源回收
    public void destroy() {
        System.out.println("-----------销毁的方法");
    }
}